/**
 *
 * 枚举类
 */

/**
 * 用户的社交平台的类型枚举
 */
export const SystemUserSocialTypeEnum = {
  DINGTALK: {
    title: '钉钉',
    type: 20,
    source: 'dingtalk',
    img: 'https://s1.ax1x.com/2022/05/22/OzMDRs.png'
  },
  WECHAT_ENTERPRISE: {
    title: '企业微信',
    type: 30,
    source: 'wechat_enterprise',
    img: 'https://s1.ax1x.com/2022/05/22/OzMrzn.png'
  }
}

// ========== COMMON 模块 ==========

/**
 * 星期
 * @param SUNDAY 星期日
 * @param MONDAY 星期一
 * @param TUESDAY 星期二
 * @param WEDNESDAY 星期三
 * @param THURSDAY 星期四
 * @param FRIDAY 星期五
 * @param SATURDAY 星期六
 */
export const CommonWeekEnum = {
  //星期日
  SUNDAY: 0,
  //星期一
  MONDAY: 1,
  //星期二
  TUESDAY: 2,
  //星期三
  WEDNESDAY: 3,
  //星期四
  THURSDAY: 4,
  //星期五
  FRIDAY: 5,
  //星期六
  SATURDAY: 6
}

/**
 * 进餐时间
 * @param BREAKFAST 早餐
 * @param LUNCH 午餐
 * @param DINNER 晚餐
 */
export const CommonMealEnum = {
  //早餐
  BREAKFAST: 1,
  //午餐
  LUNCH: 2,
  //晚餐
  DINNER: 3
}

/**
 * 日历类型
 * @param SOLAR_CALENDAR 阳历
 * @param LUNAR_CALENDAR 阴历
 */
export const CalendarTypeEnum = {
  //阳历
  SOLAR_CALENDAR: 0,
  //阴历
  LUNAR_CALENDAR: 1
}

/**
 * 婚姻状况
 * @param UNMARRIED 未婚
 * @param MARRIED 已婚
 * @param DIVORCE 离异
 * @param WIDOWED 丧偶
 */
export const MaritalStatusEnum = {
  //未婚
  UNMARRIED: 0,
  //已婚
  MARRIED: 1,
  //离异
  DIVORCE: 2,
  //丧偶
  WIDOWED: 3
}

/**
 * 用户类型
 * @param MEMBER 会员
 * @param ADMIN 管理员
 */
export const UserTypeEnum = {
  //会员
  MEMBER: 1,
  //管理员
  ADMIN: 2
}

/**
 * 用户性别
 * @param MALE 男
 * @param FEMALE 女
 */
export const CommonSexEnum = {
  //男
  MALE: 1,
  //女
  FEMALE: 2
}

/**
 * 系统状态
 * @param ENABLE 开启
 * @param DISABLED 关闭
 */
export const CommonStatusEnum = {
  //开启
  ENABLE: 0,
  //关闭
  DISABLED: 1
}

// ========== SYSTEM 模块 ==========

/**
 * 角色标识
 * @param SUPER_ADMIN 超级管理员
 */
export const SystemRoleCodeEnum = {
  //超级管理员
  SUPER_ADMIN: 'super_admin'
}

/**
 * 菜单类型
 * @param DIR 目录
 * @param MENU 菜单
 * @param BUTTON 按钮
 */
export const SystemMenuTypeEnum = {
  //目录
  DIR: 1,
  //菜单
  MENU: 2,
  //按钮
  BUTTON: 3
}

/**
 * 站内信模版的类型
 * @param ANNOUNCEMENT 通知公告
 * @param SYSTEM 系统消息
 */
export const SystemNotifyTemplateTypeEnum = {
  //通知公告
  ANNOUNCEMENT: 1,
  //系统消息
  SYSTEM: 2
}

/**
 * 通知类型
 * @param NOTICE 通知
 * @param ANNOUNCEMENT 公告
 */
export const SystemNoticeTypeEnum = {
  //通知
  NOTICE: 1,
  //公告
  ANNOUNCEMENT: 2
}

/**
 * 操作类型
 * @param OTHER 其它
 * @param QUERY 查询
 * @param INSERT 新增
 * @param MODIFY 修改
 * @param DELETE 删除
 * @param EXPORT 导出
 * @param IMPORT 导入
 */
export const SystemOperateTypeEnum = {
  //其它
  OTHER: 0,
  //查询
  QUERY: 1,
  //新增
  INSERT: 2,
  //修改
  MODIFY: 3,
  //删除
  DELETE: 4,
  //导出
  EXPORT: 5,
  //导入
  IMPORT: 6
}

/**
 * 登陆结果
 * @param SUCCESS 成功
 * @param BAD_CREDENTIALS 账号或密码不正确
 * @param UNKNOWN_EXCEPTION 未知异常
 * @param USER_DISABLED 用户被禁用
 * @param CAPTCHA_NOT_FOUND 验证码不存在
 * @param CAPTCHA_CODE_ERROR 验证码不正确
 */
export const SystemLoginResultEnum = {
  //成功
  SUCCESS: 0,
  //账号或密码不正确
  BAD_CREDENTIALS: 10,
  //未知异常
  UNKNOWN_EXCEPTION: 100,
  //用户被禁用
  USER_DISABLED: 20,
  //验证码不存在
  CAPTCHA_NOT_FOUND: 30,
  //验证码不正确
  CAPTCHA_CODE_ERROR: 31
}

/**
 * 登陆日志的类型
 * @param LOGIN_USERNAME 账号登录
 * @param LOGIN_SOCIAL 社交登录
 * @param LOGIN_MOBILE 手机登录
 * @param LOGIN_SMS 短信登陆
 * @param LOGOUT_SELF 主动登出
 * @param LOGOUT_DELETE 强制登出
 */
export const SystemLoginTypeEnum = {
  //账号登录
  LOGIN_USERNAME: 100,
  //社交登录
  LOGIN_SOCIAL: 101,
  //手机登录
  LOGIN_MOBILE: 103,
  //短信登陆
  LOGIN_SMS: 104,
  //主动登出
  LOGOUT_SELF: 200,
  //强制登出
  LOGOUT_DELETE: 202
}

/**
 * 数据权限类型
 * @param ALL 全部数据权限
 * @param DEPT_CUSTOM 指定部门数据权限
 * @param DEPT_ONLY 本部门数据权限
 * @param DEPT_AND_CHILD 本部门及以下数据权限
 * @param SELF 仅本人数据权限
 */
export const SystemDataScopeEnum = {
  //全部数据权限
  ALL: 1,
  //指定部门数据权限
  DEPT_CUSTOM: 2,
  //本部门数据权限
  DEPT_ONLY: 3,
  //本部门及以下数据权限
  DEPT_AND_CHILD: 4,
  //仅本人数据权限
  SELF: 5
}

/**
 * 短信模板的类型
 * @param VERIFICATION_CODE 验证码
 * @param NOTICE 通知
 * @param PROMOTION 营销
 */
export const SystemSmsTemplateTypeEnum = {
  //验证码
  VERIFICATION_CODE: 1,
  //通知
  NOTICE: 2,
  //营销
  PROMOTION: 3
}

/**
 * 短信渠道编码
 * @param ALIYUN 阿里云
 * @param DEBUG_DING_TALK 调试(钉钉)
 */
export const SystemSmsChannelCodeEnum = {
  //阿里云
  ALIYUN: 'ALIYUN',
  //调试(钉钉)
  DEBUG_DING_TALK: 'DEBUG_DING_TALK'
}

/**
 * 短信接收状态
 * @param INIT 初始化
 * @param SUCCESS 接收成功
 * @param FAILURE 接收失败
 */
export const SystemSmsReceiveStatusEnum = {
  //初始化
  INIT: 0,
  //接收成功
  SUCCESS: 10,
  //接收失败
  FAILURE: 20
}

/**
 * 短信发送状态
 * @param INIT 初始化
 * @param SUCCESS 发送成功
 * @param FAILURE 发送失败
 * @param IGNORE 不发送
 */
export const SystemSmsSendStatusEnum = {
  //初始化
  INIT: 0,
  //发送成功
  SUCCESS: 10,
  //发送失败
  FAILURE: 20,
  //不发送
  IGNORE: 30
}

/**
 * 邮件发送状态
 * @param INIT 初始化
 * @param SUCCESS 发送成功
 * @param FAILURE 发送失败
 * @param IGNORE 不发送
 */
export const SystemMailSendStatusEnum = {
  //初始化
  INIT: 0,
  //发送成功
  SUCCESS: 10,
  //发送失败
  FAILURE: 20,
  //不发送
  IGNORE: 30
}

/**
 * 角色类型
 * @param SYSTEM 内置
 * @param CUSTOM 自定义
 */
export const SystemRoleTypeEnum = {
  //内置
  SYSTEM: 1,
  //自定义
  CUSTOM: 2
}

// ========== INFRA 模块 ==========

/**
 * 升级时需要代码生成的数据库表
 * @param SYSTEM_MENU 菜单
 * @param INFRA_DATABASE_COLUMN 数据库表字段
 * @param INFRA_DATABASE_TABLE 数据库表
 * @param INFRA_DATABASE_INDEX 数据库表索引
 * @param INFRA_DATABASE_MAPPING 数据库表映射
 * @param INFRA_INTERFACE_VALIDATION 接口校验
 * @param INFRA_INTERFACE_VO_CLASS 接口子类
 * @param INFRA_INTERFACE_MODULE 接口模块
 * @param INFRA_INTERFACE 接口VO类
 * @param INFRA_INTERFACE_PARAM 接口参数
 * @param INFRA_INTERFACE_SUBCLASS 接口子类
 * @param INFRA_JOB 定时任务
 * @param INFRA_DICT_TYPE 字典类型
 * @param INFRA_DICT_DATA 字典数据
 * @param QRTZ_BLOB_TRIGGERS blog类型triggers
 * @param QRTZ_CALENDARS 以 Blob 类型存储 Quartz 的 Calendar 信息
 * @param QRTZ_CRON_TRIGGERS 存放cron类型的触发器
 * @param QRTZ_FIRED_TRIGGERS 存储已经触发的trigger相关信息
 * @param QRTZ_JOB_DETAILS 记录每个任务的详细信息
 * @param QRTZ_LOCKS 记录程序的悲观锁
 * @param QRTZ_PAUSED_TRIGGER_GRPS 存储已暂停的 Trigger 组的信息
 * @param QRTZ_SCHEDULER_STATE 记录 调度器（每个机器节点）的生命状态
 * @param QRTZ_SIMPLE_TRIGGERS 存储简单的trigger，包括重复次数，间隔，以及触发次数
 * @param QRTZ_SIMPROP_TRIGGERS 存储CalendarIntervalTrigger和DailyTimeIntervalTrigger两种类型的触发器
 * @param QRTZ_TRIGGERS 记录每个触发器的详细信息
 * @param INFRA_DICT_NO 字典编号
 */
export const InfraCodegenTableEnum = {
  //菜单
  SYSTEM_MENU: 'SYSTEM_MENU',
  //数据库表字段
  INFRA_DATABASE_COLUMN: 'INFRA_DATABASE_COLUMN',
  //数据库表
  INFRA_DATABASE_TABLE: 'INFRA_DATABASE_TABLE',
  //数据库表索引
  INFRA_DATABASE_INDEX: 'INFRA_DATABASE_INDEX',
  //数据库表映射
  INFRA_DATABASE_MAPPING: 'INFRA_DATABASE_MAPPING',
  //接口校验
  INFRA_INTERFACE_VALIDATION: 'INFRA_INTERFACE_VALIDATION',
  //接口子类
  INFRA_INTERFACE_VO_CLASS: 'INFRA_INTERFACE_VO_CLASS',
  //接口模块
  INFRA_INTERFACE_MODULE: 'INFRA_INTERFACE_MODULE',
  //接口VO类
  INFRA_INTERFACE: 'INFRA_INTERFACE',
  //接口参数
  INFRA_INTERFACE_PARAM: 'INFRA_INTERFACE_PARAM',
  //接口子类
  INFRA_INTERFACE_SUBCLASS: 'INFRA_INTERFACE_SUBCLASS',
  //定时任务
  INFRA_JOB: 'INFRA_JOB',
  //字典类型
  INFRA_DICT_TYPE: 'INFRA_DICT_TYPE',
  //字典数据
  INFRA_DICT_DATA: 'INFRA_DICT_DATA',
  //blog类型triggers
  QRTZ_BLOB_TRIGGERS: 'QRTZ_BLOB_TRIGGERS',
  //以 Blob 类型存储 Quartz 的 Calendar 信息
  QRTZ_CALENDARS: 'QRTZ_CALENDARS',
  //存放cron类型的触发器
  QRTZ_CRON_TRIGGERS: 'QRTZ_CRON_TRIGGERS',
  //存储已经触发的trigger相关信息
  QRTZ_FIRED_TRIGGERS: 'QRTZ_FIRED_TRIGGERS',
  //记录每个任务的详细信息
  QRTZ_JOB_DETAILS: 'QRTZ_JOB_DETAILS',
  //记录程序的悲观锁
  QRTZ_LOCKS: 'QRTZ_LOCKS',
  //存储已暂停的 Trigger 组的信息
  QRTZ_PAUSED_TRIGGER_GRPS: 'QRTZ_PAUSED_TRIGGER_GRPS',
  //记录 调度器（每个机器节点）的生命状态
  QRTZ_SCHEDULER_STATE: 'QRTZ_SCHEDULER_STATE',
  //存储简单的trigger，包括重复次数，间隔，以及触发次数
  QRTZ_SIMPLE_TRIGGERS: 'QRTZ_SIMPLE_TRIGGERS',
  //存储CalendarIntervalTrigger和DailyTimeIntervalTrigger两种类型的触发器
  QRTZ_SIMPROP_TRIGGERS: 'QRTZ_SIMPROP_TRIGGERS',
  //记录每个触发器的详细信息
  QRTZ_TRIGGERS: 'QRTZ_TRIGGERS',
  //字典编号
  INFRA_DICT_NO: 'INFRA_DICT_NO'
}

/**
 * 不需要代码生成的函数
 * @param DICTNOSERVICEIMPLPRODUCENO 字典编号生成编号
 */
export const InfraCodegenExcludeFunctionEnum = {
  //字典编号生成编号
  DICTNOSERVICEIMPLPRODUCENO: 'DictNoServiceImpl.produceNo'
}

/**
 * API 异常数据的处理状态
 * @param INIT 未处理
 * @param DONE 已处理
 * @param IGNORE 已忽略
 */
export const InfraApiErrorLogProcessStatusEnum = {
  //未处理
  INIT: 0,
  //已处理
  DONE: 1,
  //已忽略
  IGNORE: 2
}

/**
 * 错误码的类型
 * @param AUTO_GENERATION 自动生成
 * @param MANUAL_OPERATION 手动编辑
 */
export const InfraErrorCodeTypeEnum = {
  //自动生成
  AUTO_GENERATION: 1,
  //手动编辑
  MANUAL_OPERATION: 2
}

/**
 * 定时任务状态
 * @param INIT 初始化中
 * @param NORMAL 正常
 * @param STOP 暂停
 */
export const InfraJobStatusEnum = {
  //初始化中
  INIT: 0,
  //正常
  NORMAL: 1,
  //暂停
  STOP: 2
}

/**
 * 定时任务日志状态
 * @param RUNNING 运行中
 * @param SUCCESS 成功
 * @param FAILURE 失败
 */
export const InfraJobLogStatusEnum = {
  //运行中
  RUNNING: 0,
  //成功
  SUCCESS: 1,
  //失败
  FAILURE: 2
}

/**
 * OAuth 2.0 授权类型
 * @param PASSWORD password
 * @param AUTHORIZATION_CODE authorization_code
 * @param IMPLICIT implicit
 * @param CLIENT_CREDENTIALS client_credentials
 * @param REFRESH_TOKEN refresh_token
 */
export const InfraOauth2GrantTypeEnum = {
  //password
  PASSWORD: 'password',
  //authorization_code
  AUTHORIZATION_CODE: 'authorization_code',
  //implicit
  IMPLICIT: 'implicit',
  //client_credentials
  CLIENT_CREDENTIALS: 'client_credentials',
  //refresh_token
  REFRESH_TOKEN: 'refresh_token'
}

/**
 * Redis 超时类型
 * @param NEVER 永不超时
 * @param DYNAMIC 动态超时
 * @param FIX 固定超时
 */
export const InfraRedisTimeoutTypeEnum = {
  //永不超时
  NEVER: 1,
  //动态超时
  DYNAMIC: 2,
  //固定超时
  FIX: 3
}

/**
 * 参数类型
 * @param SYSTEM 系统内置
 * @param CUSTOM 自定义
 */
export const InfraConfigTypeEnum = {
  //系统内置
  SYSTEM: 1,
  //自定义
  CUSTOM: 2
}

/**
 * Boolean 是否类型
 * @param FALSE 否
 * @param TRUE 是
 */
export const InfraBooleanStringEnum = {
  //否
  FALSE: 'false',
  //是
  TRUE: 'true'
}

/**
 * 文件存储器
 * @param DATABASE 数据库
 * @param LOCAL 本地磁盘
 * @param FTP FTP 服务器
 * @param SFTP SFTP 服务器
 * @param OBJECT S3 对象存储
 */
export const InfraFileStorageEnum = {
  //数据库
  DATABASE: 1,
  //本地磁盘
  LOCAL: 10,
  //FTP 服务器
  FTP: 11,
  //SFTP 服务器
  SFTP: 12,
  //S3 对象存储
  OBJECT: 20
}

// ========== ELDER 模块 ==========

/**
 * 入住登记状态
 * @param TO_BE_CHECK_IN 待入住
 * @param CHECKED_IN 已入住
 * @param CANCEL 已取消
 * @param CHECKED_OUT 已退住
 */
export const ElderCheckInStatusEnum = {
  //待入住
  TO_BE_CHECK_IN: 1,
  //已入住
  CHECKED_IN: 2,
  //已取消
  CANCEL: 3,
  //已退住
  CHECKED_OUT: 4
}

/**
 * 退住登记状态
 * @param TO_BE_CHECK_OUT 待退住
 * @param CHECKED_OUT 已退住
 * @param CANCEL 已取消
 */
export const ElderCheckOutStatusEnum = {
  //待退住
  TO_BE_CHECK_OUT: 1,
  //已退住
  CHECKED_OUT: 2,
  //已取消
  CANCEL: 3
}

/**
 * 退住登记类型
 * @param DISCHARGE 出院
 * @param TRANSFER 转院
 * @param DEATH 死亡
 */
export const ElderCheckOutTypeEnum = {
  //出院
  DISCHARGE: 1,
  //转院
  TRANSFER: 2,
  //死亡
  DEATH: 3
}

/**
 * 事故登记类型
 * @param ACCIDENT 意外
 * @param FALL 摔倒
 */
export const ElderAccidentTypeEnum = {
  //意外
  ACCIDENT: 1,
  //摔倒
  FALL: 2
}

/**
 * 外出登记陪同人类型
 * @param FAMILY 家属
 * @param NURSE 护理人员
 * @param ALONE 独自外出
 */
export const ElderGoOutEntourageTypeEnum = {
  //家属
  FAMILY: 1,
  //护理人员
  NURSE: 2,
  //独自外出
  ALONE: 3
}

/**
 * 外出登记状态
 * @param NOT_GO_OUT 未外出
 * @param GO_OUT 已外出
 * @param RETURN 已返回
 * @param CANCEL 已取消
 */
export const ElderGoOutStatusEnum = {
  //未外出
  NOT_GO_OUT: 1,
  //已外出
  GO_OUT: 2,
  //已返回
  RETURN: 3,
  //已取消
  CANCEL: 4
}

/**
 * 来访登记状态
 * @param RESERVED 已预约
 * @param VISITED 已来访
 * @param LEAVE 已离开
 * @param CANCEL 已取消
 */
export const ElderVisitStatusEnum = {
  //已预约
  RESERVED: 1,
  //已来访
  VISITED: 2,
  //已离开
  LEAVE: 3,
  //已取消
  CANCEL: 4
}

/**
 * 老人类别
 * @param DISABLED 失能老人
 * @param SELF_CARE 自理老人
 * @param HALF_SELF_CARE 半自理老人
 * @param DEMENTED 失智老人
 */
export const ElderTypeEnum = {
  //失能老人
  DISABLED: 0,
  //自理老人
  SELF_CARE: 1,
  //半自理老人
  HALF_SELF_CARE: 2,
  //失智老人
  DEMENTED: 3
}

/**
 * 老人居住情况
 * @param ALONE 独自居住
 * @param LIVING_SPOUSE 与配偶居住
 * @param LIVING_CHILDREN 与子女居住
 * @param OTHER 其他
 * @param LIVING_PARENT 与父母同住
 */
export const ElderLiveTypeEnum = {
  //独自居住
  ALONE: 0,
  //与配偶居住
  LIVING_SPOUSE: 1,
  //与子女居住
  LIVING_CHILDREN: 2,
  //其他
  OTHER: 3,
  //与父母同住
  LIVING_PARENT: 4
}

// ========== NURSE 模块 ==========

/**
 * 护理计划项目执行方式
 * @param MOUTH 月
 * @param WEEK 周
 * @param DAY 天
 * @param XDAY X天
 */
export const NursePlanExecTypeEnum = {
  //月
  MOUTH: 0,
  //周
  WEEK: 1,
  //天
  DAY: 2,
  //X天
  XDAY: 3
}

// ========== RESTAURANT 模块 ==========

/**
 * 餐饮计划状态
 * @param UNPUBLISHED 未发布
 * @param PUBLISH 已发布
 */
export const RestaurantPlanStatusEnum = {
  //未发布
  UNPUBLISHED: 1,
  //已发布
  PUBLISH: 2
}

/**
 * 食谱类型
 * @param BREAKFAST 早餐
 * @param LUNCH 午餐
 * @param DINNER 晚餐
 * @param MORNING_TEA 早茶
 * @param AFTERNOON_TEA 下午茶
 * @param NIGHT_SNACK 宵夜
 */
export const RestaurantRecipeTypeEnum = {
  //早餐
  BREAKFAST: 1,
  //午餐
  LUNCH: 2,
  //晚餐
  DINNER: 3,
  //早茶
  MORNING_TEA: 4,
  //下午茶
  AFTERNOON_TEA: 5,
  //宵夜
  NIGHT_SNACK: 6
}

/**
 * 餐品禁忌人群
 * @param RHEUMATISM 风湿
 * @param HYPERTENSION 高血压
 * @param HYPERLIPIDEMIA 高血脂
 * @param ARTHRITIS 关节炎
 * @param CORONARY_HEART_DISEASE 冠心病
 * @param CEREBRAL_THROMBOSIS 脑血栓
 * @param DIABETES 糖尿病
 * @param MYOCARDIAL_INFARCTION 心肌梗
 * @param OTHER 其它
 */
export const RestaurantDishTabooEnum = {
  //风湿
  RHEUMATISM: 0,
  //高血压
  HYPERTENSION: 1,
  //高血脂
  HYPERLIPIDEMIA: 2,
  //关节炎
  ARTHRITIS: 3,
  //冠心病
  CORONARY_HEART_DISEASE: 4,
  //脑血栓
  CEREBRAL_THROMBOSIS: 5,
  //糖尿病
  DIABETES: 6,
  //心肌梗
  MYOCARDIAL_INFARCTION: 7,
  //其它
  OTHER: 8
}

// ========== FEE 模块 ==========

/**
 * 收费方式
 * @param DAY 按天
 * @param MONTH 按月
 */
export const FeeChargeTypeEnum = {
  //按天
  DAY: 1,
  //按月
  MONTH: 2
}

/**
 * 费用类别类型
 * @param RECHARGE 预充值费用
 * @param DEPOSIT 押金
 */
export const FeeCategoryTypeEnum = {
  //预充值费用
  RECHARGE: 1,
  //押金
  DEPOSIT: 2
}

/**
 * 预充值明细状态
 * @param PENDING_PAYMENT 待缴费
 * @param PAID_FULL 已缴清
 * @param CANCEL 已取消
 * @param SETTLED 已结算
 */
export const FeeRechargeDetailStatusEnum = {
  //待缴费
  PENDING_PAYMENT: 1,
  //已缴清
  PAID_FULL: 2,
  //已取消
  CANCEL: 3,
  //已结算
  SETTLED: 4
}

/**
 * 费用支付方式
 * @param CASH 现金
 * @param ALIPAY 支付宝
 * @param WECHAT 微信
 * @param BACK_TRANSFER 银行转账
 * @param OTHER 其它
 */
export const FeePayTypeEnum = {
  //现金
  CASH: 1,
  //支付宝
  ALIPAY: 2,
  //微信
  WECHAT: 3,
  //银行转账
  BACK_TRANSFER: 4,
  //其它
  OTHER: 5
}

/**
 * 押金明细状态
 * @param PENDING_PAYMENT 待缴费
 * @param PAID_FULL 已缴清
 * @param CANCEL 已取消
 * @param RETURNED 已退还
 */
export const FeeDepositDetailStatusEnum = {
  //待缴费
  PENDING_PAYMENT: 1,
  //已缴清
  PAID_FULL: 2,
  //已取消
  CANCEL: 3,
  //已退还
  RETURNED: 4
}

// ========== HEALTH 模块 ==========

/**
 * 药品库存记录类型
 * @param DEPOSIT 缴存
 * @param REFUND 退缴
 * @param LOSS 损耗
 * @param ADDITIONAL 补录
 * @param USE 用药
 */
export const HealthMedicineStockRecordTypeEnum = {
  //缴存
  DEPOSIT: 1,
  //退缴
  REFUND: 2,
  //损耗
  LOSS: 3,
  //补录
  ADDITIONAL: 4,
  //用药
  USE: 5
}

/**
 * 用药登记用药类型
 * @param PLAN 计划
 * @param TEMPORARY 临时
 */
export const HealthMedicineRegisterTypeEnum = {
  //计划
  PLAN: 1,
  //临时
  TEMPORARY: 2
}

/**
 * 药品缴存方式
 * @param HOSPITAL_DEPOSIT 院方代缴
 * @param SELF_DEPOSIT 本人代缴
 * @param FAMILY_DEPOSIT 家属代缴
 * @param HOSPITAL_PRESCRIPTION 医院处方药
 */
export const HealthMedicineDepositTypeEnum = {
  //院方代缴
  HOSPITAL_DEPOSIT: 1,
  //本人代缴
  SELF_DEPOSIT: 2,
  //家属代缴
  FAMILY_DEPOSIT: 3,
  //医院处方药
  HOSPITAL_PRESCRIPTION: 4
}

/**
 * 药品剂型
 * @param CAPSULE 胶囊
 * @param PARTICLES 颗粒
 * @param TABLET 片剂
 * @param INJECTION 针剂
 * @param OTHER 其他
 */
export const HealthMedicineDosageFormEnum = {
  //胶囊
  CAPSULE: 1,
  //颗粒
  PARTICLES: 2,
  //片剂
  TABLET: 3,
  //针剂
  INJECTION: 4,
  //其他
  OTHER: 5
}

/**
 * 药品类型
 * @param CHINESE_MODICINE 中药
 * @param WESTERN_MEDICINE 西药
 */
export const HealthMedicineTypeEnum = {
  //中药
  CHINESE_MODICINE: 1,
  //西药
  WESTERN_MEDICINE: 2
}

// ========== MATERIAL 模块 ==========

/**
 * 物资出库单状态
 * @param PENDING_REVIEW 待审核
 * @param COMPLETED 已完成
 * @param CANCEL 已取消
 * @param PENDING_OUT 待出库
 */
export const MaterialStockOutStatusEnum = {
  //待审核
  PENDING_REVIEW: 1,
  //已完成
  COMPLETED: 2,
  //已取消
  CANCEL: 3,
  //待出库
  PENDING_OUT: 4
}

/**
 * 物资单据类型
 * @param PURCHASE 采购
 * @param TRANSFER 调拨
 * @param INVENTORY 盘点
 */
export const MaterialOrderTypeEnum = {
  //采购
  PURCHASE: 1,
  //调拨
  TRANSFER: 2,
  //盘点
  INVENTORY: 3
}

/**
 * 物资出库单领用人类型
 * @param ELDER 老人
 * @param USER 员工
 */
export const MaterialStockOutReceiverTypeEnum = {
  //老人
  ELDER: 1,
  //员工
  USER: 2
}

/**
 * 物资出库单物资去向
 * @param TRANSFER 调拨
 * @param INVENTORY 盘点
 * @param USE 使用
 * @param SALES 出售
 */
export const MaterialStockOutDestinationTypeEnum = {
  //调拨
  TRANSFER: 3,
  //盘点
  INVENTORY: 4,
  //使用
  USE: 1,
  //出售
  SALES: 2
}

/**
 * 物资入库单来源单据类型
 * @param PURCHASE 采购
 * @param TRANSFER 调拨
 * @param INVENTORY 盘点
 * @param UNKNOWN 未知
 */
export const MaterialStockInSourceTypeEnum = {
  //采购
  PURCHASE: 1,
  //调拨
  TRANSFER: 2,
  //盘点
  INVENTORY: 3,
  //未知
  UNKNOWN: 4
}

/**
 * 物资入库单状态
 * @param PENDING_REVIEW 待审核
 * @param COMPLETED 已完成
 * @param CANCEL 已取消
 */
export const MaterialStockInStatusEnum = {
  //待审核
  PENDING_REVIEW: 1,
  //已完成
  COMPLETED: 2,
  //已取消
  CANCEL: 3
}

/**
 * 物资盘点单状态
 * @param PENDING_REVIEW 待审核
 * @param PENDING_INVENTORY 待盘点
 * @param COMPLETED 已完成
 * @param CANCEL 取消
 */
export const MaterialInventoryStatusEnum = {
  //待审核
  PENDING_REVIEW: 1,
  //待盘点
  PENDING_INVENTORY: 2,
  //已完成
  COMPLETED: 3,
  //取消
  CANCEL: 4
}

/**
 * 物资调拨单状态
 * @param PENDING_REVIEW 待审核
 * @param PENDING_OUT 待出库
 * @param PARTIAL_OUT 部分出库
 * @param PENDING_IN 待入库
 * @param PARTIAL_IN 部分入库
 * @param COMPLETED 已完成
 * @param CANCEL 已取消
 */
export const MaterialTransferStatusEnum = {
  //待审核
  PENDING_REVIEW: 1,
  //待出库
  PENDING_OUT: 2,
  //部分出库
  PARTIAL_OUT: 3,
  //待入库
  PENDING_IN: 4,
  //部分入库
  PARTIAL_IN: 5,
  //已完成
  COMPLETED: 6,
  //已取消
  CANCEL: 7
}

/**
 * 物资采购单状态
 * @param PENDING_REVIEW 待审核
 * @param PENDING_IN 待入库
 * @param PARTIAL_IN 部分入库
 * @param COMPLETED 已完成
 * @param CANCEL 已取消
 */
export const MaterialPurchaseStatusEnum = {
  //待审核
  PENDING_REVIEW: 1,
  //待入库
  PENDING_IN: 2,
  //部分入库
  PARTIAL_IN: 3,
  //已完成
  COMPLETED: 4,
  //已取消
  CANCEL: 5
}

/**
 * 物资供应商性质
 * @param AGENT 代理商
 * @param WHOLESALER 批发商
 * @param MANUFACTURER 制造商
 */
export const MaterialSupplierPropertyEnum = {
  //代理商
  AGENT: 1,
  //批发商
  WHOLESALER: 2,
  //制造商
  MANUFACTURER: 3
}

// ========== BED 模块 ==========

/**
 * 房间朝向
 * @param NORTH 正北
 * @param NORTHEAST 东北
 * @param EAST 正东
 * @param SOUTHEAST 东南
 * @param SOUTH 正南
 * @param SOUTHWEST 西南
 * @param WEST 正西
 * @param NORTHWEST 西北
 */
export const BedRoomOrientationEnum = {
  //正北
  NORTH: 1,
  //东北
  NORTHEAST: 2,
  //正东
  EAST: 3,
  //东南
  SOUTHEAST: 4,
  //正南
  SOUTH: 5,
  //西南
  SOUTHWEST: 6,
  //正西
  WEST: 7,
  //西北
  NORTHWEST: 8
}
